<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>合同协议书</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    html, body {
      height: 100%;
      overflow: hidden; /* 防止双滚动条 */
    }
    
    body {
      font-family: 'Microsoft YaHei', SimSun, serif;
      background-color: #f5f5f5;
      display: flex;
      flex-direction: column;
    }
    
    .document-container {
      flex: 1;
      overflow-y: auto;
      padding: 20px;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    
    .page {
      width: 595px; /* A4纸宽度 */
      min-height: 842px; /* A4纸高度 */
      background-color: white;
      margin-bottom: 20px;
      padding: 40px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
      position: relative;
      page-break-after: always;
    }
    
    .page:last-child {
      margin-bottom: 0;
    }
    
    .header {
      text-align: center;
      margin-bottom: 30px;
    }
    
    h1 {
      font-size: 24px;
      font-weight: bold;
      margin: 20px 0;
    }
    
    h3 {
      font-size: 16px;
      font-weight: bold;
      margin: 15px 0 10px 0;
    }
    
    .content {
      text-indent: 2em;
      font-size: 14px;
      line-height: 1.6;
    }
    
    .content p {
      margin: 8px 0;
    }
    
    .signature {
      margin-top: 50px;
      display: flex;
      justify-content: space-between;
      position: absolute;
      bottom: 100px;
      width: calc(100% - 80px);
    }
    
    .sign-block {
      width: 200px;
    }
    
    .sign-block p {
      margin: 10px 0;
      height: 30px;
    }
    
    .date {
      margin-top: 20px;
      text-align: right;
      position: absolute;
      bottom: 50px;
      right: 40px;
    }
    
    /* 为签章预留位置的样式 */
    .sign-area {
      display: inline-block;
      width: 100px;
      height: 100px;
      border: 1px dashed #ccc;
      margin-left: 20px;
      vertical-align: middle;
    }
    
    /* 页码样式 */
    .page-number {
      position: absolute;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 12px;
      color: #666;
    }
  </style>
</head>
<body>
  <div class="document-container">
    <!-- 第一页 -->
    <div class="page" data-page="1">
      <div class="header">
        <h1>合同协议书</h1>
      </div>
      
      <div class="content">
        <p><strong>甲方：</strong>张三公司</p>
        <p><strong>乙方：</strong>李四企业</p>
        
        <p>根据《中华人民共和国合同法》及相关法律法规，甲乙双方在平等自愿、协商一致的基础上，就项目合作事宜达成如下协议：</p>
        
        <h3>第一条 合作内容</h3>
        <p>甲方委托乙方提供以下服务：软件开发与技术支持服务。具体包括但不限于：</p>
        <p>1. 系统需求分析与设计</p>
        <p>2. 前端界面开发</p>
        <p>3. 后端服务开发</p>
        <p>4. 数据库设计与优化</p>
        <p>5. 系统测试与部署</p>
        <p>6. 技术培训与文档编写</p>
        
        <h3>第二条 合作期限</h3>
        <p>本协议有效期为一年，自2023年1月1日起至2023年12月31日止。如需延期，双方应在到期前30日内协商确定。</p>
        
        <h3>第三条 费用及支付方式</h3>
        <p>1. 合作费用：人民币壹拾万元整（¥100,000.00）。</p>
        <p>2. 支付方式：</p>
        <p>   - 合同签订后7日内支付30%（¥30,000.00）</p>
        <p>   - 项目中期验收后支付40%（¥40,000.00）</p>
        <p>   - 项目最终验收后支付30%（¥30,000.00）</p>
        
        <h3>第四条 双方权利义务</h3>
        <p>1. 甲方权利义务：</p>
        <p>   - 提供必要的项目资料和技术文档</p>
        <p>   - 按时支付合作费用</p>
        <p>   - 配合乙方进行项目开发和测试</p>
        <p>   - 提供必要的硬件和网络环境</p>
      </div>
      
      <div class="page-number">第 1 页 共 3 页</div>
    </div>
    
    <!-- 第二页 -->
    <div class="page" data-page="2">
      <div class="content">
        <p>2. 乙方权利义务：</p>
        <p>   - 按时完成开发任务，确保项目质量</p>
        <p>   - 提供技术支持和维护服务</p>
        <p>   - 保证开发成果的原创性和合法性</p>
        <p>   - 提供完整的技术文档和用户手册</p>
        <p>   - 对甲方人员进行必要的技术培训</p>
        
        <h3>第五条 保密条款</h3>
        <p>1. 双方应对在合作过程中获知的对方商业秘密、技术秘密严格保密。</p>
        <p>2. 保密期限为本协议终止后三年。</p>
        <p>3. 未经对方书面同意，不得向第三方泄露相关信息。</p>
        
        <h3>第六条 知识产权</h3>
        <p>1. 乙方在履行本协议过程中开发的软件及相关技术成果，知识产权归甲方所有。</p>
        <p>2. 乙方保证其提供的技术和服务不侵犯任何第三方的知识产权。</p>
        <p>3. 如因知识产权问题产生纠纷，由乙方承担全部责任。</p>
        
        <h3>第七条 违约责任</h3>
        <p>1. 任何一方违反本协议约定，应当承担违约责任。</p>
        <p>2. 甲方逾期付款的，应按逾期金额每日万分之五支付违约金。</p>
        <p>3. 乙方逾期交付的，应按合同总金额每日万分之三支付违约金。</p>
        <p>4. 因违约造成对方损失的，违约方应赔偿对方的实际损失。</p>
        
        <h3>第八条 不可抗力</h3>
        <p>因不可抗力因素导致合同无法履行的，双方均不承担违约责任，但应及时通知对方并提供相关证明。</p>
        
        <h3>第九条 合同变更与解除</h3>
        <p>1. 本协议的任何修改或补充，须经双方书面同意。</p>
        <p>2. 经双方协商一致，可以解除本协议。</p>
        <p>3. 一方严重违约的，对方有权解除合同并要求赔偿损失。</p>
      </div>
      
      <div class="page-number">第 2 页 共 3 页</div>
    </div>
    
    <!-- 第三页 -->
    <div class="page" data-page="3">
      <div class="content">
        <h3>第十条 争议解决</h3>
        <p>1. 双方如有争议，应首先通过友好协商解决。</p>
        <p>2. 协商不成的，可以向甲方所在地的仲裁委员会申请仲裁。</p>
        <p>3. 仲裁裁决是终局的，对双方均有约束力。</p>
        
        <h3>第十一条 其他条款</h3>
        <p>1. 本协议一式两份，甲乙双方各执一份，具有同等法律效力。</p>
        <p>2. 本协议自双方签字盖章之日起生效。</p>
        <p>3. 本协议未尽事宜，双方可另行协商签订补充协议。</p>
        <p>4. 补充协议与本协议具有同等法律效力。</p>
        
        <h3>第十二条 附则</h3>
        <p>1. 本协议的签订、履行、解释均适用中华人民共和国法律。</p>
        <p>2. 本协议条款如与国家法律法规相冲突，以国家法律法规为准。</p>
        <p>3. 本协议自签订之日起生效，有效期至项目完成并验收合格后终止。</p>
      </div>
      
      <div class="signature">
        <div class="sign-block">
          <p><strong>甲方</strong>（盖章）：<span class="sign-area"></span></p>
          <p>代表人签字：</p>
          <p>联系电话：</p>
          <p>地址：</p>
        </div>
        <div class="sign-block">
          <p><strong>乙方</strong>（盖章）：<span class="sign-area"></span></p>
          <p>代表人签字：</p>
          <p>联系电话：</p>
          <p>地址：</p>
        </div>
      </div>
      
      <div class="date">
        <p>签订日期：2023年1月1日</p>
      </div>
      
      <div class="page-number">第 3 页 共 3 页</div>
    </div>
  </div>
  
  <script>
    // 通知父窗口iframe已加载完成
    window.addEventListener('load', function() {
      if (window.parent && window.parent !== window) {
        // 计算总高度
        const pages = document.querySelectorAll('.page');
        const totalHeight = pages.length * 862; // 每页高度 + 间距
        
        window.parent.postMessage({
          type: 'iframe-loaded',
          width: 595,
          height: totalHeight,
          numPages: pages.length,
          pdfPageOriginWidth: Array.from(pages).map((page, index) => ({
            page: index + 1,
            width: 595
          }))
        }, '*');
      }
    });
  </script>
</body>
</html>